package com.aps.service;

import com.aps.entity.domain.order.ApsOrder;
import com.aps.entity.domain.order.OrderDish;
import com.aps.entity.dto.ApsOrderRtDTO;
import com.aps.entity.dto.KdsDishOpeDTO;
import com.aps.entity.dto.OrderDishChangeDTO;
import com.aps.entity.eunm.DishStatus;

import java.util.List;

/**
 * @author liaoguangan
 * @description <订单菜品服务类>
 * @date 2018/4/1 15:43
 */
public interface IOrderDishService {

    /**
     * 菜品开始制作
     * @param kdsDishOpeDTO
     */
    void start(KdsDishOpeDTO kdsDishOpeDTO);

    /**
     * 菜品结束制作
     * @param kdsDishOpeDTO
     */
    void end(KdsDishOpeDTO kdsDishOpeDTO);

    /**
     * 加菜
     * @param orderNum
     * @param orderDishChangeDTO
     * @param status
     */
    void add(String orderNum, OrderDishChangeDTO orderDishChangeDTO, DishStatus status);

    /**
     * 退菜
     * @param orderDish
     */
    void back(OrderDish orderDish);

    /**
     * 计算RT时间
     * @param apsOrders
     */
    List<ApsOrderRtDTO> calculateRequestTime(List<ApsOrder> apsOrders);

    /**
     * 计算PT时间
     * @param apsOrders
     */
    void calculatePromiseTime(List<ApsOrderRtDTO> apsOrders);
}
